const WebSocket = require('ws');
const ws = new WebSocket.Server({ port: 3001 });
let dataManager = require('./data/DataManager');
let clients = [];
let users = [];

ws.on('connection', function (client) {
    client.id = users.length;
    clients.push(client);
    client.on('message', function (msg) {
        console.log('msg>>>', msg);
        let _data = dataManager.DataHander(msg);
        if(_data != null){
            console.log('_data>>>', _data);
            client.send(_data);
        }
        // switch(_respData.mid){
        //     case localConfig.ProtoList.ChatMsg:
        //         {
        //             let data = _respData.deMessage;
        //             if(data.type == 'add'){
        //                 if(users.length<clients.length){
        //                     users.push(data.curuser);
        //                 }
        //                 data.users = {
        //                     curuser:data.curuser,
        //                     users:users
        //                 };
        //             }
        //             let sendmsg = parseData.reqData('Msg.ChatMsg',localConfig.ProtoList.ChatMsg,data);
        //             for(let i=0;i<clients.length;i++){
        //                 let client = clients[i];
        //                 client.send(sendmsg);
        //             }
        //         }
        //         break;
        //     default:
        //         console.warn('协议号未定义',mid);
        //         break
        // }
    });

    client.on('close', () => {
        let index = clients.indexOf(client);
        if (index !== -1) {
            // let data = {};
            // data.type = 'leave';
            // data.msg = users[index].username;
            // data.curuser = users[index];

            clients.splice(index, 1);
            // users.splice(index, 1);

            // let sendmsg = parseData.reqData('Msg.ChatMsg',localConfig.ProtoList.ChatMsg,data);
            // for(let i=0;i<clients.length;i++){
            //     let client = clients[i];
            //     client.send(sendmsg);
            // }
            console.log('clinet closed', index, client.id);
        }
    });
});